home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.util.Debug;
- import com.extensibility.util.FilteredEnumerator;
- import com.extensibility.util.XASet;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
- import javax.swing.event.EventListenerList;
-
- public class AttributeGroup implements Cloneable, AttributeGroupMember {
- private static final String PADDING = " ";
- private static final String COL_PAD = " ";
- private static final int TYPE_COL_WIDTH = 10;
- private static final int DECL_COL_WIDTH = 11;
- Vector attributes;
- AttributeDeclaration.Owner owner;
- EventListenerList listenerList;
- DeclarationChangeEvent declChangeEvent;
-
- public AttributeGroup(AttributeDeclaration.Owner var1) {
- this.attributes = new Vector();
- this.listenerList = new EventListenerList();
- this.declChangeEvent = new DeclarationChangeEvent(this);
- this.owner = var1;
- }
-
- AttributeGroup(AttributeDeclaration.Owner var1, Vector var2) {
- this(var1);
- this.updateContents(var2);
- }
-
- public String getName() {
- return this.owner.getName();
- }
-
- public boolean contains(AttributeGroup var1) {
- return var1 == null ? false : this.attributes.indexOf(var1) >= 0;
- }
-
- Vector getUsesList(Vector var1) {
- if (var1 == null) {
- var1 = new Vector();
- }
-
- for(int var2 = 0; var2 < this.attributes.size(); ++var2) {
- AttributeGroupMember var3 = (AttributeGroupMember)this.attributes.elementAt(var2);
- if (var3 instanceof AttributeGroup) {
- ((AttributeGroup)var3).getUsesList(var1);
- if (var3.getOwner() instanceof BaseDeclaration) {
- var1.addElement(var3.getOwner());
- }
- }
- }
-
- return var1;
- }
-
- public Enumeration getMetaProps() {
- XASet var1 = new XASet();
- Enumeration var2 = this.getAttributes(true);
-
- while(var2.hasMoreElements()) {
- AttributeDeclaration var3 = (AttributeDeclaration)var2.nextElement();
- Enumeration var4 = ((BaseDeclaration)var3).getMetaProps();
-
- while(var4 != null && var4.hasMoreElements()) {
- String var5 = (String)var4.nextElement();
- var1.addToSet(var5);
- }
- }
-
- return ((Vector)var1).elements();
- }
-
- public String getMetaProps(String var1) {
- boolean var2 = true;
- StringBuffer var3 = new StringBuffer();
- Enumeration var4 = this.getAttributes(true);
-
- while(var4.hasMoreElements()) {
- AttributeDeclaration var5 = (AttributeDeclaration)var4.nextElement();
- if (!var5.isQualified()) {
- String var6 = (String)((BaseDeclaration)var5).getMetaProp(var1);
- if (var6 != null) {
- if (!var2) {
- var3.append(" ");
- } else {
- var2 = false;
- }
-
- var3.append(((BaseDeclaration)var5).getName());
- var3.append(" ");
- var3.append(var6);
- }
- }
- }
-
- return var3.toString();
- }
-
- void replace(AttributeGroupMember var1, AttributeGroupMember var2) {
- int var3 = this.attributes.indexOf(var1);
- this.attributes.setElementAt(var2, var3);
- }
-
- boolean replace(AttributeDeclaration.Owner var1, AttributeGroup var2) {
- boolean var3 = false;
-
- for(int var4 = 0; var4 < this.attributes.size(); ++var4) {
- AttributeGroupMember var5 = (AttributeGroupMember)this.attributes.elementAt(var4);
- if (var5.getOwner() == var1) {
- this.attributes.setElementAt(var2, var4);
- var3 = true;
- } else if (var5 instanceof AttributeGroup) {
- ((AttributeGroup)var5).replace(var1, var2);
- }
- }
-
- return var3;
- }
-
- public AttributeDeclaration.Owner getOwner() {
- return this.owner;
- }
-
- public int getMemberCount() {
- return this.attributes.size();
- }
-
- public void setOwner(AttributeDeclaration.Owner var1) {
- this.owner = var1;
- FilteredEnumerator var2 = new FilteredEnumerator(this.getAttributes(false), Class.forName("com.extensibility.xml.AttributeDeclaration"));
-
- while(var2.hasMoreElements()) {
- ((AttributeDeclaration)var2.nextElement()).setOwner(var1);
- }
-
- }
-
- public Object clone(AttributeDeclaration.Owner var1, SchemaIntf var2, SchemaIntf var3) {
- AttributeGroup var4 = null;
-
- try {
- var4 = (AttributeGroup)super.clone();
- var4.attributes = new Vector();
- var4.owner = var1;
- Enumeration var5 = this.attributes.elements();
-
- for(int var13 = 0; var13 < this.attributes.size(); ++var13) {
- AttributeGroup var7 = null;
- Object var8 = this.attributes.elementAt(var13);
- String var9 = ((AttributeGroupMember)var8).getOwner().getName();
- if (!(var8 instanceof AttributeDeclaration)) {
- if (var8 instanceof AttributeGroup) {
- InternalPEDeclaration var10 = (InternalPEDeclaration)var3.getNamedDeclaration(var9, Class.forName("com.extensibility.xml.InternalPEDeclaration"));
- var7 = var10.getAttributeGroup();
- } else {
- Debug.assert(false, "unexpected contents of attributes");
- }
- }
-
- if (var7 != null) {
- var4.add(var7);
- }
- }
-
- return var4;
- } catch (CloneNotSupportedException var11) {
- Debug.assert(false, "Problem cloning AttributeGroup.");
- Object var6 = null;
- return var6;
- }
- }
-
- public Object clone(AttributeDeclaration.Owner var1) {
- AttributeGroup var2 = null;
-
- try {
- var2 = (AttributeGroup)super.clone();
- var2.attributes = new Vector();
- var2.owner = var1;
- Enumeration var3 = this.attributes.elements();
-
- for(Object var8 = null; var3.hasMoreElements(); var2.add((AttributeGroupMember)var8)) {
- Object var5 = var3.nextElement();
- if (var5 instanceof AttributeDeclaration) {
- var8 = ((AttributeDeclaration)var5).clone(var1);
- } else if (var5 instanceof AttributeGroup) {
- var8 = (AttributeGroup)var5;
- } else {
- Debug.assert(false, "unexpected contents of attributes");
- }
- }
-
- return var2;
- } catch (CloneNotSupportedException var6) {
- Debug.assert(false, "Problem cloning AttributeGroup.");
- Object var4 = null;
- return var4;
- }
- }
-
- public boolean add(AttributeGroupMember var1) {
- if (this.attributes.indexOf(var1) < 0) {
- this.attributes.addElement(var1);
- return true;
- } else {
- return false;
- }
- }
-
- public void remove(AttributeGroupMember var1) {
- if (!this.attributes.removeElement(var1)) {
- throw new IllegalArgumentException();
- }
- }
-
- void removeAll() {
- this.attributes.removeAllElements();
- }
-
- public Vector getMembers() {
- return (Vector)this.attributes.clone();
- }
-
- public Enumeration getAttributes(boolean var1) {
- return (Enumeration)(!var1 ? this.attributes.elements() : new 1(this));
- }
-
- public void setURI(URI var1) {
- }
-
- public Vector updateContents(Vector var1, AttributeDeclaration.Owner var2) {
- Enumeration var3 = var1.elements();
-
- while(var3.hasMoreElements()) {
- Object var4 = var3.nextElement();
- ((AttributeGroupMember)var4).setOwner(var2);
- }
-
- return this.updateContents(var1);
- }
-
- public Vector updateContents(Vector var1) {
- Vector var2 = new Vector();
-
- for(int var3 = this.attributes.size() - 1; var3 >= 0; --var3) {
- if (var1.indexOf(this.attributes.elementAt(var3)) < 0) {
- var2.addElement(this.attributes.elementAt(var3));
- this.remove((AttributeGroupMember)this.attributes.elementAt(var3));
- }
- }
-
- for(int var4 = var1.size() - 1; var4 >= 0; --var4) {
- if (this.attributes.indexOf(var1.elementAt(var4)) < 0) {
- this.add((AttributeGroupMember)var1.elementAt(var4));
- }
- }
-
- return var2;
- }
-
- public AttributeDeclaration getAttribute(String var1) {
- Enumeration var2 = this.getAttributes(true);
-
- while(var2.hasMoreElements()) {
- AttributeDeclaration var3 = (AttributeDeclaration)var2.nextElement();
- if (((BaseDeclaration)var3).getName().equals(var1)) {
- return var3;
- }
- }
-
- return null;
- }
-
- public AttributeGroupMember getAttributeOrGroup(String var1) {
- Enumeration var2 = this.getAttributes(false);
-
- while(var2.hasMoreElements()) {
- AttributeGroupMember var3 = (AttributeGroupMember)var2.nextElement();
- if (var3.getName().equals(var1)) {
- return var3;
- }
- }
-
- return null;
- }
-
- public String getAttributesAsString(boolean var1) {
- Enumeration var2 = this.getAttributes(var1);
- StringBuffer var3 = new StringBuffer();
-
- Object var5;
- for(String var4 = ", "; var2.hasMoreElements(); var3.append(String.valueOf(this.getMemberName((AttributeGroupMember)var5)).concat(String.valueOf(var4)))) {
- var5 = var2.nextElement();
- if (!var2.hasMoreElements()) {
- var4 = "";
- }
- }
-
- return var3.toString();
- }
-
- private String getMemberName(AttributeGroupMember var1) {
- String var2 = var1.getName();
- if (var1 instanceof AttributeGroup && var1.getOwner() instanceof InternalPEDeclaration) {
- var2 = String.valueOf('%').concat(String.valueOf(var2));
- }
-
- return var2;
- }
-
- public String getSource() {
- return this.getSource(0);
- }
-
- public boolean hasComments() {
- Enumeration var1 = this.getAttributes(false);
-
- while(var1.hasMoreElements()) {
- AttributeGroupMember var2 = (AttributeGroupMember)var1.nextElement();
- if (var2 instanceof AttributeDeclaration) {
- AttributeDeclaration var3 = (AttributeDeclaration)var2;
- if (((BaseDeclaration)var3).hasComments()) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- public String getSource(boolean var1) {
- if (var1) {
- if (this.attributes.size() == 0) {
- return "";
- } else {
- String var2 = String.valueOf("<!ATTLIST ").concat(String.valueOf(this.getOwner().getName()));
- return String.valueOf(String.valueOf(String.valueOf(var2).concat(String.valueOf(" "))).concat(String.valueOf(this.getSource(var2.length())))).concat(String.valueOf(" >"));
- }
- } else {
- return this.getSource(0);
- }
- }
-
- public String getSource(int var1) {
- boolean var2 = var1 == 0;
- String var3 = var2 ? String.valueOf("<!ATTLIST ").concat(String.valueOf(this.getOwner().getName())) : String.valueOf(" ".substring(0, var1)).concat(String.valueOf(" "));
- StringBuffer var4 = new StringBuffer();
- String var5 = this.getOwner().getName();
- int var6 = 0;
- int var7 = 0;
-
- AttributeGroupMember var9;
- for(Enumeration var8 = this.getAttributes(false); var8.hasMoreElements(); var7 = Math.max(var7, var9 instanceof AttributeDeclaration ? ((AttributeDeclaration)var9).getTypeAsPrimitiveSource().length() : 0)) {
- var9 = (AttributeGroupMember)var8.nextElement();
- var6 = Math.max(var6, var9.getName().length());
- }
-
- String var16 = " ".substring(0, var3.length() + var6 + " ".length() * 3);
- String var10 = " ".substring(0, var3.length() + var6 + var7 + " ".length() * 3);
- boolean var11 = true;
- Enumeration var12 = this.getAttributes(false);
-
- while(var12.hasMoreElements()) {
- AttributeGroupMember var13 = (AttributeGroupMember)var12.nextElement();
- if (var2 && var13 instanceof AttributeDeclaration) {
- var4.append(System.getProperty("line.separator"));
- var4.append(((BaseDeclaration)var13).getCommentsAsSource());
- }
-
- if (var11 && !var2) {
- var11 = false;
- } else {
- var4.append(var3);
- }
-
- if (var13 instanceof AttributeDeclaration) {
- var4.append(String.valueOf(" ").concat(String.valueOf(var13.getName())));
- AttributeDeclaration var14 = (AttributeDeclaration)var13;
- var4.append(" ".substring(0, var6 - var13.getName().length()));
- String var15 = var14.getTypeAsPrimitiveSource();
- if (!var14.isEnumeration()) {
- var4.append(String.valueOf(" ").concat(String.valueOf(var15)));
- var4.append(" ".substring(0, var7 - var15.length()));
- }
-
- var4.append(String.valueOf(" ").concat(String.valueOf(var14.getChoicesSource(var16))));
- var4.append(String.valueOf(" ").concat(String.valueOf(var14.getDefaultSource((char)(var2 ? '"' : '\''), var10))));
- } else {
- Debug.assert(var13 instanceof AttributeGroup, "unexpected entry in vector");
- var4.append(String.valueOf(String.valueOf(" %").concat(String.valueOf(var13.getName()))).concat(String.valueOf(";")));
- }
-
- if (var2) {
- var4.append(">");
- }
-
- if (var2 || var12.hasMoreElements()) {
- var4.append(System.getProperty("line.separator"));
- }
- }
-
- return var4.toString();
- }
-
- public void addChangeListener(ChangeListener var1) {
- this.listenerList.add(Class.forName("javax.swing.event.ChangeListener"), var1);
- }
-
- public void removeChangeListener(ChangeListener var1) {
- this.listenerList.remove(Class.forName("javax.swing.event.ChangeListener"), var1);
- }
-
- public void fireChangeEvent(ChangeEvent var1) {
- Object[] var2 = this.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == Class.forName("javax.swing.event.ChangeListener")) {
- ((ChangeListener)var2[var3 + 1]).stateChanged(var1);
- }
- }
-
- }
- }
-